#ifndef TLV_H
#define TLV_H
#include <my_header.h>
#define TRAIN_VALUE_MAX_LENGTH 1000
// 定义一个枚举类型
enum MSG_TYPE {
    USER_NAME = 0,          //用户名
    CMD_PARTS_COUNT = 1,    //命令分为几个部分
    CMD = 2,                //命令是什么
    CMD_PARAMETER = 3,      //命令的参数
    CMD_RESULT = 4,         //命令执行的结果
    FILE_NAME = 5,          //文件名
    FILE_LENGTH = 6,        //文件长度
    FILE_CONTANT = 7        //文件内容
};

typedef struct train_s{
    int type;
    int length;
    char value[TRAIN_VALUE_MAX_LENGTH];
}train_t;
//输出火车内容
int print_train(train_t* ptrain);
//发送用户名
int send_username(int sockfd, char* username);
//接受用户名
int recv_username(int sockfd, char* username);
//接受命令
int recv_command(int sockfd, char* parts[]);
//发送命令
int send_command(int sockfd, char* parts[], int count);
//发送结果
int send_result(int sockfd,char* result);
//接收结果                                                                                                             
int recv_result(int sockfd,char* result);
//客户端向服务端发送文件
int trans_file_to_server(int sockfd, char* file_name);
//服务端从客户端接收文件                                                                                                        
int recv_file_from_client(int sockfd,char* current_real_path);
//服务端向客户端发送文件
int trans_file_to_client(int sockfd, char* file_name);
//客户端从服务端接收文件                                                                                                        
int recv_file_from_server(int sockfd,char* current_real_path);
#endif


